USB is a cable bus that supports data exchange between a Host computer and a plurality of peripheral devices by means of serial data packets, and interfaces for converting these data packets into a format suitable for use by a computer or device connected to the USB. The USB design permits a star topology for connecting up to 127 devices. USB comprises a plurality of devices, which include one Host, which also functions as a root hub, and additional hubs or functions. A USB hub has a number of ports that can be used for connecting devices or other hubs.
USB is not the only standard that allows for extending the reach of personal computers. Another well known standard is the FireWire, i.e., IEEE 1394 bus standard, available at http://standards.ieee.org/catalog/bus.html#1394-1995, which allows for asynchronous and isochronous packet based communications with dynamic configuration and a provision for powering devices via the bus. An IEEE 1394 compliant  serial bus provides greater bandwidth (100 Mbps or more) than the USB (12 Mbps). Still, it is susceptible to exhaustion of its bandwidth capability and consequent difficulties for users as in the case of USB. The discussion below focuses on USB for illustrative purposes only and is not intended to be a limitation on the scope of the claims.
The devices connected to a USB fall into two major classes—functions and hubs, which are differentiated by the roles they play in the organization and operation of the USB system. All hubs have a plurality of downstream ports and one upstream port. These ports can be used to connect other devices, including hubs. Functions are devices that do not possess ports for connecting more devices downstream from them, but usually perform tasks. Some examples of tasks include collecting data via a video camera, driving speakers, or using a modem. A device may possess downstream ports while being able to perform tasks, but such a device is considered by the USB to comprise a hub with functions connected to the hub. Of course, all devices have to be USB compatible in order to operate satisfactorily while connected to a USB.
Another notable feature of the USB is that it not only supports data flow, but also allows for powering peripheral devices connected to the USB, although it does not require that the peripherals, i.e. devices, be powered by the USB.  Thus, it is possible to have devices that have their own source of power and/or utilize USB supplied power.
USB supports data transfer at either a ‘fast’ or ‘slow’ rate thereby meaning 12 Megabits/second (Mbps) or 1.5 Mbps respectively. Both modes can be supported in the same USB due to built in dynamic switching between transfers. In addition, devices connected to the USB are detected and configured dynamically and the USB system is designed to handle a device being disconnected or connected without notice.
Hubs play a very important role in the operation of the USB. A hub includes several downstream ports, usually one upstream port, a repeater, a hub controller and a hub driver. Each hub detects the connection or disconnection of a device on any one of its ports. In addition, a hub can reset or render inactive any of its ports, and consequently the devices connected to that port. Some hubs, e.g., “ENTREGA® USBnet”, may even be connected to two computers in order to facilitate communication between two computers. Further details on this device are available at www.entrega.com/con—usb—prodinfo.html. It should be noted that here the term ‘hub’ is used broadly to include devices, e.g., “ENTREGA® USBnet,” with potentially more than one upstream connection.
One device in particular plays a unique role in the operation of the USB, i.e. the Host, which includes a root hub, and to which other devices, including other hubs, are  connected. Each USB has one and only one Host. The Host configures other hubs and devices connected to them on the USB. It is also responsible for managing the signaling and data transfer on a USB. It generates a Start of Frame (SOF) signal every 1 ms regardless of other activity on the USB, which is used by downstream hubs to synchronize their clocks. The robustness of USB in data transfer is furthered by the requirement that hubs maintain synchronization with the Host even if one SOF is missed.
Data transmission on the USB is primarily of four types: control transfer, bulk transfer, interrupt transfer and isochronous transfer. These modes differ in the guarantees given to the devices requesting the connections. All data transfers are targeted to a logical endpoint on a device. A given endpoint supports a particular type of data transfer with certain guarantees that are negotiated in the course of device configuration. Furthermore, a USB device may support many endpoints.
Thus, e.g., isochronous data transfer assures data transfer at the fast rate with specified bandwidth, and without error correction, i.e. in the event of an error the system does not attempt to resend a data packet, and naturally, there is no acknowledgment of data receipt. On the other hand, interrupt transfer supports error correction, and in the event of an error, a data packet is retransmitted. Interrupt transfers also enjoy a system assurance of transmission within a given time latency with  acknowledgment of uncorrupted data. Thus, isochronous data transfer is, for example, suited for a continuous feed from a camera while interrupt transfer is better suited for devices such as a mouse that need quick attention, but may remain idle for unpredictable periods of time. Bulk data transfer does not have any assurance of when it would be transmitted, but is acknowledged in the course of error detection and correction.
USB offers a flexible method of connecting a plurality of devices to a computer such that the devices can be connected and configured (or disconnected) without having to cold-start the computer while allowing for reliable data transfer at a variety of QoS levels. The benefit to the user of being able to use cameras, printers, scanners, keyboards, mice, displays and the like by merely plugging in the devices cannot be understated.
However, the USB, as presently implemented, has a number of limitations that reduce its utility. Some problems in connecting devices of interest encountered by users, despite the ability to connect as many as 127 devices to a USB, are due to the maximum bandwidth of only 12 Mbps in the fast mode. The limited bandwidth combined with bandwidth consuming devices like cameras, speakers, etc. act as another limitation on the number of devices that can be concurrently operated while connected to a USB.
When the USB detects and configures a newly connected device, it fails to allocate resources if it cannot support  the device requirements. In other words, the device being plugged is enumerated and presented to the system but will not work. This limitation can be particularly vexing for users who are not computer-literate to the extent of routinely trouble-shooting problems. Such a user might get frustrated or erroneously conclude that a given device is defective. Worse, the consumer may return a perfectly functioning USB compatible device, or the computer itself not to mention use vast amounts of expensive technical support time.
USB is not sufficiently flexible to adjust its resource allocation without requiring extensive user input. In addition, the present specifications for the USB do not address the desirability of a certain set of devices working together in preference to other combinations. Furthermore, USB often favors the first device configured to run regardless of the contextual utility. For example, it may be preferable to operate speakers with a camera as opposed to a scanner, but USB will prefer a scanner already in use to a new connection sought by speakers. These limitations are particularly limiting in the case of isochronous devices.
Bus specifications, other than USB, face similar limitations in accommodating devices with combined bandwidth requirements greater than the bandwidth available on the bus. This problem is bound to worsen as more devices requiring substantial bandwidth come on the market. 
The rules for operating devices that may be able to function acceptably with lower resolution, i.e. lower bandwidth, limit efficient dynamic reallocation of bandwidth. For example, USB specification, version 1.1, requires that the configuration of a device cannot be dynamically changed while data is either being transmitted or received. Since, isochronous data pipes provide continuous data throughput, with specified bandwidth, this is a significant limitation on dynamic modification of the bandwidth allocation.